
//
//  UIImageView+radius.swift
//  GitWeibo
//
//  Created by 胡金东 on 2017/6/6.
//  Copyright © 2017年 胡金东. All rights reserved.
//

import Foundation

extension UIImage{


func avatarImage(size:CGSize?,backColor:UIColor?,cornerRadius:CGFloat) ->UIImage?  {
    
    var size = size
    if size == nil {
        size = self.size
    }
    
    
    let rect = CGRect(origin: CGPoint(), size: size!)
    
    /// - 1.图像上下文 内存中开辟一个地址，跟屏幕无关
    /**
     size：绘图的尺寸
     opaque: 不透明 false(透明) / true（不透明）
     scale: 屏幕分辨率，默认生成的图像默认使用 1.0 的分辨率，图像质量不好 可以指定 0 会选择当前设备的屏幕分辨率
     */
    /// -  false(透明) / true（不透明），true好，占GPU少
    
    UIGraphicsBeginImageContextWithOptions(rect.size, true, 0)
    
    /// - 0.填充背景
    backColor?.setFill()
    UIRectFill(rect)
    /// - 1.实例化一个圆形的路径
    //        let  path = UIBezierPath(ovalIn: rect)
    
    let path = UIBezierPath(roundedRect: rect, cornerRadius: cornerRadius)
    /// - 2.进行路径裁剪 - 后续的绘图，都会出现在圆形内部，外部的全部干掉
    path.addClip()
    /// - 3.绘图 drawInRect 就是在指定区域内拉伸屏幕
    draw(in: rect)
    /// - 4.绘制内切的圆形
    UIColor.red.setStroke()
    path.lineWidth = 2
    path.stroke()
    /// - 5.取的结果
    let result = UIGraphicsGetImageFromCurrentImageContext()
    /// - 6.关闭上下文
    UIGraphicsEndImageContext()
    /// - 7.返回结果
    return result
    
}
}
